home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3c / mldset.z / mldset
Encoding:
Text File  |  2002-10-03  |  12.9 KB  |  265 lines

  1.  
  2.  
  3.  
  4. mmmmllllddddsssseeeetttt((((3333))))                                                            mmmmllllddddsssseeeetttt((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      mldset_create, mldset_destroy, mldset_place - mldset operations
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>>
  13.      ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ppppmmmmoooo....hhhh>>>>
  14.  
  15.      ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt mmmmllllddddsssseeeetttt____ccccrrrreeeeaaaatttteeee((((ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt**** mmmmllllddddlllliiiisssstttt,,,, iiiinnnntttt mmmmllllddddlllliiiisssstttt____lllleeeennnn))))
  16.  
  17.      iiiinnnntttt mmmmllllddddsssseeeetttt____ddddeeeessssttttrrrrooooyyyy((((ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt mmmmllllddddsssseeeetttt____hhhhaaaannnnddddlllleeee))))
  18.  
  19.      iiiinnnntttt mmmmllllddddsssseeeetttt____ppppllllaaaacccceeee((((ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt mmmmllllddddsssseeeetttt____hhhhaaaannnnddddlllleeee,,,,
  20.                       ttttooooppppoooollllooooggggyyyy____ttttyyyyppppeeee____tttt ttttooooppppoooollllooooggggyyyy____ttttyyyyppppeeee,,,,
  21.                       rrrraaaaffffffff____iiiinnnnffffoooo____tttt**** rrrraaaafffffffflllliiiisssstttt,,,,
  22.                       iiiinnnntttt rrrraaaafffffffflllliiiisssstttt____lllleeeennnn,,,,
  23.                       rrrrqqqqmmmmooooddddeeee____tttt rrrrqqqqmmmmooooddddeeee))))
  24.  
  25.  
  26. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  27.      _mmmm_llll_dddd_ssss_eeee_tttt______cccc_rrrr_eeee_aaaa_tttt_eeee creates a memory locality domain set.
  28.  
  29.      _mmmm_llll_dddd_ssss_eeee_tttt______dddd_eeee_ssss_tttt_rrrr_oooo_yyyy destroys a memory locality domain set.
  30.  
  31.      _mmmm_llll_dddd_ssss_eeee_tttt______pppp_llll_aaaa_cccc_eeee places a memory locality domain set.  The placement is done
  32.      using the supplied MLDset topology and optional affinity. The
  33.      topology_type can be one of the following:
  34.  
  35.      TOPOLOGY_FREE        This topology specification lets the Operating
  36.                           System decide what shape to use to allocate the set.
  37.                           The Operating System will try to place this MLDset
  38.                           on a cluster of physical nodes as compact as
  39.                           possible, depending on the current system load.
  40.  
  41.      TOPOLOGY_CPUCLUSTER  This topology specification is used to request the
  42.                           placement of one MLD per CPU instead of the default
  43.                           one MLD per node. In an Origin 3000, the number of
  44.                           cpus on a fully populated node is 4, hence each node
  45.                           can have up to 4 MLDs placed per node. For a node
  46.                           with less than the maximum number of cpus available
  47.                           the number of MLDs placed on that node will not
  48.                           exceed the actual number of CPUs. Also if cpusets
  49.                           are in use, the MLDs will be placed on nodes that
  50.                           are part of the defined cpuset.  This topology is
  51.                           useful when the placement policy is managing cache
  52.                           coloring relative to MLDs instead of virtual memory
  53.                           regions.
  54.  
  55.      TOPOLOGY_CUBE        This topology specification is used to request a
  56.                           cube-like shape.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. mmmmllllddddsssseeeetttt((((3333))))                                                            mmmmllllddddsssseeeetttt((((3333))))
  71.  
  72.  
  73.  
  74.      TOPOLOGY_CUBE_FIXED  This topology specification is used to request a
  75.                           physical cube.
  76.  
  77.      TOPOLOGY_PHYSNODES   This topology specification is used to request that
  78.                           the MLDs in an MLDset be placed in the exact
  79.                           physical nodes enumerated in the device affinity
  80.                           list, described below.
  81.  
  82.      The argument rafflist is used to specify resource affinity. It is an
  83.      array of resource specifications using the structure shown below:
  84.  
  85.           typedef struct raff_info {
  86.                   void* resource;
  87.                   ushort reslen;
  88.                   ushort restype;
  89.                   ushort radius;
  90.                   ushort attr;
  91.           } raff_info_t;
  92.  
  93.  
  94.      The fields resource, reslen, and restype define the resource. The field
  95.      resource is used to specify the name of the resource, the field reslen
  96.      must always be set to the actual number of bytes the resource pointer
  97.      points to, and the field restype specifies the kind of resource
  98.      identification being used, which can be any of the following:
  99.  
  100.      RAFFIDT_NAME This resource identification type should be used for the
  101.                   cases where a hardware graph path name is used to identify
  102.                   the device.
  103.  
  104.      RAFFIDT_FD   This resource identification type should be used for the
  105.                   cases where a file descriptor is being used to identify the
  106.                   device.
  107.  
  108.      The radius field defines the maximum distance from the actual resource
  109.      the user would like the MLDset to be place at. The attr field specified
  110.      whether the user wants the MLDset to be placed close or far from the
  111.      resource:
  112.  
  113.      RAFFATTR_ATTRACTION The MLDset should be placed as close as possible to
  114.                          the specified device.
  115.  
  116.      RAFFATTR_REPULSION  The MLDset should be placed as far as possible from
  117.                          the specified device.
  118.  
  119.      The argument rafflist_len in the _mmmm_llll_dddd_ssss_eeee_tttt______pppp_llll_aaaa_cccc_eeee call specifies the number
  120.      of raff structures the user is passing via rafflist. There must be at
  121.      least as many raff structures passed as the size of the corresponding
  122.      mldset or the operation will fail and EINVAL will be returned.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. mmmmllllddddsssseeeetttt((((3333))))                                                            mmmmllllddddsssseeeetttt((((3333))))
  137.  
  138.  
  139.  
  140.      Finally, the rqmode argument is used to specify whether the placement
  141.      request is ADVISORY or MANDATORY.  For both rqmode types, the nodes
  142.      selected for MLD assignment are chosen according to several criteria of
  143.      cpuset selection, load activity, neighbor node distance, and available
  144.      memory. This group of nodes is the candidate list.  The final criteria of
  145.      available node memory can suddenly spike after a node has been included
  146.      in the candidate list due to other unrelated activity.  In the rqmode of
  147.      ADVISORY, an MLD assignment to a node with no available memory or no
  148.      available forecasted memory causes the MLD assignment to one of the other
  149.      nodes previously selected from the candidate list.  This may occasionally
  150.      result in MLD placement that may be less than optimal under heavy memory
  151.      use conditions. The rqmode of MANDATORY performs similar selection
  152.      criteria as ADVISORY, except for the final check of available memory or
  153.      forecasted memory. If there is not enough available memory or forecasted
  154.      memory on a node, the placement operation will fail and ENOMEM will be
  155.      returned.
  156.  
  157.      _mmmm_llll_dddd_ssss_eeee_tttt______cccc_rrrr_eeee_aaaa_tttt_eeee will fail and no MLD set will not be created if one or more
  158.      of the following are true:
  159.  
  160.      _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT         Arguments could not be copied into kernel space.
  161.  
  162.      _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT         The MLD list is NULL.
  163.  
  164.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The MLD list length is less than 1.
  165.  
  166.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         An MLD in the MLD list does not exist or is invalid.
  167.  
  168.      _EEEE_NNNN_OOOO_MMMM_EEEE_MMMM         No memory is available to create the MLD set.
  169.  
  170.      _EEEE_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP        Memory locality domains are not supported on this system
  171.                     architecture.
  172.  
  173.      _mmmm_llll_dddd_ssss_eeee_tttt______dddd_eeee_ssss_tttt_rrrr_oooo_yyyy will fail and no MLD set will not be created if one or
  174.      more of the following are true:
  175.  
  176.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The specified _mmmm_llll_dddd_ssss_eeee_tttt______hhhh_aaaa_nnnn_dddd_llll_eeee is invalid or does not exist.
  177.  
  178.      _EEEE_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP        Memory locality domains are not supported on this system
  179.                     architecture.
  180.  
  181.      _mmmm_llll_dddd_ssss_eeee_tttt______pppp_llll_aaaa_cccc_eeee will fail and the MLD set will not be placed if one or more
  182.      of the following are true:
  183.  
  184.      _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT         Arguments could not be copied into kernel space.
  185.  
  186.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The specified _mmmm_llll_dddd_ssss_eeee_tttt______hhhh_aaaa_nnnn_dddd_llll_eeee is invalid or does not exist.
  187.  
  188.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The specified topology is invalid.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. mmmmllllddddsssseeeetttt((((3333))))                                                            mmmmllllddddsssseeeetttt((((3333))))
  203.  
  204.  
  205.  
  206.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The specified rafflist length is non-zero, but the
  207.                     rafflist pointer is NULL.
  208.  
  209.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The rafflist pointer is non-NULL, but the specified
  210.                     rafflist length is zero.
  211.  
  212.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The member of the rafflist is NULL.
  213.  
  214.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The rafflist length exceeds the system allowable length.
  215.  
  216.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         Mandatory rafflist placement could not be satisfied.
  217.  
  218.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The specified rqmode has invalid hint bits set.
  219.  
  220.      _EEEE_NNNN_OOOO_MMMM_EEEE_MMMM         No memory is available to place the MLD set.
  221.  
  222.      _EEEE_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP        Memory locality domains are not supported on this system
  223.                     architecture.
  224.  
  225. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  226.      numa(5), mmci(5), mld(3c), pm(3c), migration(3c).
  227.  
  228. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  229.      Upon successful completion, _mmmm_llll_dddd_ssss_eeee_tttt______cccc_rrrr_eeee_aaaa_tttt_eeee returns a value of type
  230.      pmo_handle_t, _mmmm_llll_dddd_ssss_eeee_tttt______dddd_eeee_ssss_tttt_rrrr_oooo_yyyy and _mmmm_llll_dddd_ssss_eeee_tttt______pppp_llll_aaaa_cccc_eeee return 0.  Otherwise, a
  231.      value of -1 is returned and _e_r_r_n_o is set to indicate the error.
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.